package com.eltsistemas.dao;

import com.eltsistema.hibernate.HibernateUtil;
import com.eltsistemas.modelo.Agendamento;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;

public class AgendamentoDao {
    
    private Session session;
    
    public AgendamentoDao()
    {
        session = new HibernateUtil().getSession();
        session.beginTransaction();
    }
    
    public void adiciona(Agendamento agendamento)
    {
        session.save(agendamento);
        session.getTransaction().commit();
        session.close();
    }
    
    public List<Agendamento> lista()
    {
        List<Agendamento> agendamentoList = session.createCriteria(Agendamento.class).list();
        session.close();
        return agendamentoList;
    }
	
    public Agendamento exibe(Agendamento agendamento)
    {
        Agendamento encontradoAgendamento = (Agendamento) session.load(Agendamento.class, agendamento.getId());
        return encontradoAgendamento;
    }
	
    public void altera(Agendamento agendamento)
    {
        session.update(agendamento);
        session.getTransaction().commit();
        session.close();
    }
	
    public void remover(Agendamento agendamento)
    {
        session.delete(agendamento);
        session.getTransaction().commit();
        session.close();
    }
    
    public Agendamento buscaCodigo(Long id)
    {
        Query query = this.session.createQuery("from Agendamento " +
				"where id = :id");
        query.setLong("id", id);
				
        Agendamento encontradoAgendamento = (Agendamento) query.uniqueResult();
        session.close();
        return encontradoAgendamento;
		
    }
    
}
